純筆記 python
純分享 App Script
確認 Odoo 上一筆匯入時間:從 Google Sheets 獲取最後匯入的時間戳。
獲取 Odoo 資料:通過 API 獲取最新的出貨數據,限制在上次匯入時間到發出命令前 10 分鐘的範圍。
分批匯入資料:將數據分成 50 筆一批匯入 Google Sheets 或 Odoo 系統,確保不影響之前的資料。
通知管理員:一旦資料更新完成,發送電子郵件給 3 位管理員,告知新更新的資料,並在完成時發送總結。
設置 Google Sheets API 認證 是實現應用程式與 Google Sheets 互動的第一步,尤其是像 Google Apps Script 或 Python 等腳本需要使用 Google Sheets API 來讀取或寫入資料。以下是設定 Google Sheets API 認證的步驟:
進入 API 服務界面:
搜尋 Google Sheets API:
啟用 Google Drive API(可選,若需與 Google Drive 交互):
進入憑證界面:
設置 OAuth 同意畫面:
創建 OAuth 憑證:
如果您想要跳過用戶授權,而是直接與 Google Sheets 進行服務對服務的互動(如後端腳本使用),可以設置服務帳戶。
創建服務帳戶:
生成服務帳戶金鑰:
分享 Google Sheets 給服務帳戶:
使用 OAuth 2.0 認證與 Google Sheets 交互,你可以使用 Python 和 gspread
庫來進行操作。
pip install gspread oauth2client
import gspread
from oauth2client.service_account import ServiceAccountCredentials
# 定義 API 認證範圍
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
# 使用下載的 JSON 憑證進行授權
creds = ServiceAccountCredentials.from_json_keyfile_name('path-to-your-service-account-file.json', scope)
# 授權並打開 Google Sheets
client = gspread.authorize(creds)
# 打開特定的工作表
sheet = client.open("Your Google Sheet Name").sheet1
# 讀取或寫入資料
data = sheet.get_all_records() # 讀取所有資料
sheet.update_cell(1, 1, "Updated Data") # 更新特定單元格
這種方式要求用戶在第一次授權時手動同意,適合 Web 應用或桌面應用。
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.tools import run_flow
import gspread
# Google OAuth 認證的參數
client_id = 'YOUR_CLIENT_ID'
client_secret = 'YOUR_CLIENT_SECRET'
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
# 設置 OAuth 流程
flow = OAuth2WebServerFlow(client_id, client_secret, scope, redirect_uri=redirect_uri)
# 授權
storage = Storage('credentials.json') # 保存憑證
credentials = storage.get()
if not credentials or credentials.invalid:
credentials = run_flow(flow, storage)
# 使用憑證進行授權
gc = gspread.authorize(credentials)
# 打開 Google Sheets
worksheet = gc.open("Your Google Sheet Name").sheet1
# 操作資料
worksheet.update_acell('A1', 'Hello World!')
gspread
等庫在 Python 中訪問和修改 Google Sheets 的數據。這樣設置完成後,您可以輕鬆通過 Python 腳本與 Google Sheets 進行資料互動。